package com.applet.pojo.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.*;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;

/**
 * @author “XuShao”
 * @date 2024/12/16 21:41
 * @description
 */
@Data
@Schema(title = "发布活动DTO")
public class PublishActivityDTO {

    @NotBlank(message = "标题不能为空")
    @Size(min = 2, max = 50, message = "标题长度为2~50")
    private String title;//标题

    @NotBlank(message = "简介不能为空")
    @Size(min = 5, max = 500, message = "简介长度为5~500")
    private String description;//描述

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GHT+8")
    @NotNull(message = "开始时间不能为空")
    private LocalDateTime beginTime;//开始时间

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GHT+8")
    @NotNull(message = "结束时间不能为空")
    private LocalDateTime endTime;//结束时间

    @NotBlank(message = "活动地点不能为空")
    private String place; // 活动地点

    @NotNull(message = "参与人数上限不能为空")
    @Min(value = 1, message = "参与人数上限最少为1")
    private Integer numberOfPeopleUpperLimit;//参与人数上限

//    @TableField(jdbcType = JdbcType.ARRAY)
    @NotEmpty(message = "活动图片不能为空")
    @Size(min = 1, max = 6, message = "图片最少上传1张，最多6张")
    private List<String> avatarUrl; // 活动图片

    @NotNull(message = "活动参与的对象不能为空")
    private Short target;  // 活动参与的对象

    @NotBlank(message = "活动分类不能为空")
    private String classifyId;// 活动分类id

    @NotNull(message = "活动签到方式不能为空")
    private Short signInMethod;  // 活动签到方式

    @NotNull(message = "活动签退方式不能为空")
    private Short signOutMethod;  // 活动签退方式

    @NotBlank(message = "联系人姓名不能为空")
    private String contactName;  // 联系人姓名

    @NotNull(message = "手机号不能为空")
    @Size(min = 11, max = 11, message = "手机号只能为11位")
    @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
    private String contactPhone; // 联系人电话
}
